import java.util.Scanner;

public class Test {

    public static void main4(String[] args) {
        //java中也同C一样有顺序选择和循环结构
        //不同的是 选择和循环中的条件判断必须是布尔表达式

        //读入一个整数判断是否为奇数或偶数
        Scanner scanner=new Scanner(System.in);
        int a=scanner.nextInt();
        if(a%2==0){
            System.out.println(a+"是偶数(even)");
        }
        else{
            System.out.println(a+"是奇数(odd)");
        }

    }

    public static void main3(String[] args) {
        //位运算符 &(按位与) |(按位或) ^(异或 不进位的加法 相异为1) ~(按位取反)

        //<<(左移) >>(右移)  >>>(无符号右移)
        //左移 扔掉左边的位 右边补0 左移n位相当于乘以2^n
        //右移 扔掉右边的位 左边补符号位的数(正数补0 负数补1)
        //无符号右移 不管符号位是啥都在左边补0 右移n位(不考虑负数的情况下)相当于除以2^n

        System.out.println(-1>>1);//-1
        System.out.println(-1>>>1);//int的最大值 2147483647
        System.out.println(Integer.MAX_VALUE);

        //条件运算符 布尔表达式?表达式1:表达式2;
        //必须将计算结果符给一个变量 这个变量必须即能接受表达式1的结果又能接受表达式2
        //int a= 3>4?1:2.3;//报错
        float f=3>4?1:2.3F;//2.3默认是double 需加F或f后缀
        //3>4?1:2;//报错 "不是语句"

        //java的运算符优先级同C一样 无需全部记忆 在有可能有歧义的位置加括号即可
        //求a b的平均值
        int a=10,b=20;
        int avg=a+(b-a)>>1;
        System.out.println(avg);//10 右移最后执行
        //正确的算法是
        int mid=a+((b-a)>>1);
        System.out.println(mid);

    }

    public static void main2(String[] args) {
        //< <= > >= == !=
        //关系运算符的左右两边的数据类型必须可以隐式转换或一致
        int a=1,b=2,c=3;
        //System.out.println(a>b>c);//报错
        System.out.println(a>1.1);//false
        //关系运算符的结果只会是true或false(boolean)

        //&& || !
        //逻辑运算符的左右两边必须都是布尔表达式(即运算结果为boolean类型)
        //同C一样有短路
        System.out.println(10>0 || 10/0==0);//true
        System.out.println(10<0 && 10/0==0);//false

        //均报错
        //System.out.println(10>0&&10/0==0);
        //System.out.println(10<0||10/0==0);

        //当 | & 的左右两边都是布尔表达式时相当于不短路的 || 和 &&
        System.out.println(10<0 | 10>5);//true
        System.out.println(10<0 & 10>5);//false
        //System.out.println(10>0 | 10/0==0);//报错
        //System.out.println(10<0 & 10/0==0);//报错
    }
    public static void main1(String[] args) {
        // + - * / %
        //在java中%的左右两边可以是小数 其余同C相同
        int a=10;
        double d=2.5;
        System.out.println(a%d);//0.0
        d=3.0;
        System.out.println(a%d);//1.0
        //System.out.println(a%0);//ArithmeticException 算数异常 0不能做除数

        //a=a+d;//报错
        a+=d;//不报错(增量运算符)
        System.out.println(a);//13
        //等价于
        a=(int)(a+d);
        System.out.println(a);//16

        a=1;a=a++;
        System.out.println(a);//1
        a=1;a=++a;
        System.out.println(a);//2
    }
}
